分為以下類型的Interface可以實作
[HandleError]
[Authorize]
Step3 接著我們建立的ActionFilter必須實作繼承ActionFilterAttribut
Step4 override四個方法
並用ViewData和中斷點來觀察讀取的順序可以發現,讀取的順序為:OnActionExecuting
↓Action Method
↓OnActionExecuted
↓OnResultExecuting
↓OnResultExecuted
那這東西能做什麼變化呢?假設我們需要再登入會員前做一些設定或是條件篩選,或者登入會員後,可以透過ActionExecuted來作一些細節的調整等等。
其他還有像一些常看到的Action Filter
[OutputCache]
:可設定瀏覽器快取的相關設定。[ChildActionOnly]
:不可由外部URL 或是 RedirectToAction連結,只允許透過Html.RenderAction執行[AllowAnonymous]
:不可由外部URL 或是 RedirectToAction[ValidateAntiForgeryToken]
:用以防止CSRF攻擊,使用時除了必須在Action套用此屬性之外,在View頁面的 Form表單中,必須在Sumbit之前插入 @Html.AntiForgeryTolen()[HandleError]
:若沒特別指定錯誤事件和指定的View,預設會將頁面導向預設的 /View/Shared/Error.cshtml